/*
*  Copyright 2019-2020 Zheng Jie
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package me.zhengjie.modules.system.service.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.sql.Timestamp;
import java.math.BigDecimal;
import java.io.Serializable;
import java.util.List;

/**
* @website https://el-admin.vip
* @description /
* @author 王宇
* @date 2023-09-26
**/
@Data
public class CourseInfoDto implements Serializable {

    /** 主键id */
    private Long courseId;

    /** 课程编码 */
    private String courseNo;

    /** 名称 */
    private String courseName;

    /** 价格 */
    private BigDecimal sellPrice;

    /** 优惠价 */
    private BigDecimal discountPrice;

    /** 图标 */
    private String courseLogo;

    /** 横幅图 */
    private String courseBanner;

    /** 分类ID */
    private Long typeId;

    /** 创建时间 */
    private Timestamp createTime;

    /** 创建人 */
    private String createby;

    /** 更新时间 */
    private Timestamp updateTime;

    /** 更新人 */
    private String updateby;

    /** 课程类别；视频/音频/文字 */
    private Integer category;

    /** 详细介绍 */
    private String courseInfo;

    /** 是否展示在首页0：不展示，1：展示 */
    private Integer showIndex;

    /** 开班时间 */
    private Timestamp openTime;

    /** 类型，0：线上，1：线下 */
    private Integer platform;

    /** 排序索引 */
    private Integer sortIndex;

    /** 优惠价启停，0：停止，1：开启 */
    private Integer showDiscount;

    /** 状态，0下架，1：上架 */
    private Integer status;

    /** 显示优秀，0：不展示，1：展示 */
    private Integer showExcellent;

    /**子标题**/
    private String subTitle;

    /**
     * 是否需要报名
     */
    private Integer applicants;


    private CourseInfoOrderDTO orderDTO;

    private List<CourseItemDto> itemList;

    private List<CourseClassSourceDTO> classList;

    private Integer showPrice;

    private Integer openBuy;
    @Data
    public static class CourseInfoOrderDTO{
        private Integer enrollNum;
        private BigDecimal payTotalAmount;
        private List<CourseInfoUserDTO> userList;
    }

    @Data
    public static class CourseInfoUserDTO{
        private String name;
        private String mobile;
        private String city;
        private String headPic;
        private String nickName;
        private String orderNo;
        private BigDecimal payAmount;
        private Integer orderStatus;
    }

    @Data
    public static class CourseClassSourceDTO{
        private String classNo;
        private String className;
    }
}